package com.xlstjs.controller;

import com.xlstjs.model.User;
import com.xlstjs.util.R;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.*;

/**
 * ---闪光头目大狗狗---
 * --代码敲烂月薪过万--
 *
 * @author WangHao
 * @Date 2023/11/27 10:46:58
 * @Desc
 */
@Controller
public class Demo2JSONController {
    /**
     * 演示1 : 将字符串响应成json数据
     *
     */
    @GetMapping("/json1")
    @ResponseBody // 将返回值响应成json , 只给数据,不再跳页面
    public String json1(){
        String stc = "{ id : 1 , username : \" admin \" } ";
        return stc;
    }

    /**
     * 演示2 : 将对象响应成json
     * 此时字符串拼接不方便
     * 怎么做?直接响应对象
     */

    @GetMapping("/json2")
    @ResponseBody
    public User json2(){
        User user = new User();
        user.setId(2);
        user.setUsername("李华");
        user.setPassword("56789");
        user.setBirthday(new Date());
        user.setScore(120.1);
        return user ;
    }

    /**
     * 演示3 : 将map响应成json
     */
    @GetMapping("/json3")
    @ResponseBody
    public Map<String,Object> json3() {
        HashMap<String, Object> map = new HashMap<>();
        map.put("id" , 2);
        map.put("username" , "嘉妮");
        return map;
    }

    /**
     * 演示4 : 将list响应成json
     */
    @GetMapping("/json4")
    @ResponseBody
    public List<String> json4(){
        ArrayList<String> list = new ArrayList<>();
        list.add("毕竟");
        list.add("富贵花");
        list.add("鱼与渔");
        /**
         * ["" , ""]
         */
        return list;
    }

    /**
     * 演示5 : 统一json格式,返回R
     */
    @GetMapping("/json5")
    @ResponseBody
    public R json5(){
        //模拟登录成功,返回对象
        // R r = new R();
        // r.setCode(2000);
        // r.setMsg("登录成功");
        // r.setDate(new User());

        // 模拟查询全部
        R r = new R();
        r.setCode(2000);
        r.setMsg("查询成功");
        ArrayList<String> list = new ArrayList<>();
        r.setDate(list);
        return r;

        // 想办法简化
        // 提取成工具方法









    }

}

